/**
 * 
 */
// 初始化分页值
var startrecord = 0;
var endrecord = 0;
var tHeight = 0;
var rHeight = 40;// 每条记录高度
var pageSize = 0;
var pageCurrent = 0;
var pageCount = 0;
var tableType = 'normal';

$(function() {
	$(".m-hint").hide();
	//showSchDiv();
	$(".m-search").hide();	
	// 功能菜单
	$(".fun").on("click", function() {
		$(".fun ul").show();
	});
	$(".m-head .right").on("mouseleave", function() {
		$(".fun ul").hide();
	});

	// 查询菜单
	$(".search").on("click", function() {
		$(document.body).css("overflow", "hidden");
		$(".fun ul").hide();
		showSchDiv();
	});

	$(".opacity").on("click", function() {
		hideSchDiv();
	});
	$(".header").on("mouseenter", function() {
		$(document.body).css("overflow", "auto");
		$(".m-search").hide(200);
		$(".opacity").hide();
	});

	// 计算出查询区域的高度,为了滚动条
	condition();
	$(window).resize(function() {
		condition();
	});
	// 查询更多
	$(".more-btn").on("click", function() {
		if ($(".more").is(":hidden")) {
			$(".more").show(100);
			$(this).html('更多&uarr;');
		} else {
			$(".more").hide(100);
			$(this).html('更多&darr;');
		}
	});

	// REC_ID勾选框
	$("#mChecks").click(function() {
		var checked = $(this).is(":checked");
		$("input[name='mCheck']").each(function() {
			$(this).prop("checked", checked);
		});
	});
	tabeven();
});

var clickable = true;
var interval;
function setClickable(fun, obj) {
	if (!clickable)
		return;
	clickable = false;
	eval(fun);
	var timeLeft = 5;
	var text = $(obj).text();
	$(obj).attr("class", "btn btn-Disable");
	interval = setInterval(function() {
		var content = text + "(" + timeLeft + "秒)";
		$(obj).text(content);
		if (timeLeft <= 0) {
			clickable = true;
			$(obj).text(text);
			$(obj).attr("class", "btn");
			clearInterval(interval);
		}
		timeLeft--;
	}, 1000);
}

function showSchDiv() {
	var objEvt = $._data($("body")[0], "events");
	if(typeof(objEvt)=="undefined"){
		 /*$("body").keydown(function(e) {
	         if (e.keyCode == "13") {
	        	 searchData();
	         }
	     });*/
	}
	$(".m-search").show(200);
	$(".m-search").css("margin", "0");
	$(".opacity").show();
	$(".m-search .condition").scrollTop(0);
}

function hideSchDiv() {
	var objEvt = $._data($("body")[0], "events");
	if(objEvt&&objEvt["keydown"] ){
		$("body").unbind("keydown");   
	}
	$(document.body).css("overflow", "auto");
	$(".m-search").hide(200);
	$(".opacity").hide();
}
var pageInit = function(tHeight) {
	if (undefined == tHeight || "" == tHeight)
		tHeight = $(window).height() - 160 + 17;// 每页高度
	if ("report" == tableType)
		tHeight = tHeight - 78;

	if ($("#ps").val() == undefined) {
		pageSize = parseInt(parseInt(tHeight) / parseInt(rHeight)); // 每页显示记录数：
	} else {
		pageSize = $("#ps").val();
		$("#mPage").removeClass("fixed");
	}
	if (pageSize <= 0) {
		pageSize = 12;
	}
	pageCurrent = $("#current").text() == 0 ? 1 : $("#current").text(); // 默认第一页数为0,查询的时候赋值为1
	pageCount = $("#count").text() == 0 ? 1 : $("#count").text(); // 默认第一页数为0,查询的时候赋值为按条件查询总记录数
};

// 获取总记录数
var rowNum = function(url, data, pageSize) {
	$.ajax({
		type : "POST",
		url : url,
		data : data,
		dataType : "json",
		success : function(json) {
			if (undefined == json)
				return;
			var count = json.COUNT;
			var _count = parseInt(count / pageSize);
			if (count % pageSize > 0) {
				_count = _count + 1;
			}

			_count = isNaN(_count) ? 1 : _count;
			if (count == null || count == "")
				count = 0;
			$("#count").text(_count == 0 ? 1 : _count); // 设置
			$("#rowCount").text(count); // 设置
			if($('#ispage').val()==0){
				$("#mPage").hide();
			}else{
				$("#mPage").show();
			}
			
		},
		error : function() {
			layer.msg("温馨提醒：请重新查询");
		}
	});
};

// 分页功能
var page = function(onCss, info, tHeight, paramName) {
	// 计算初始化值
	pageInit(tHeight);
	if (typeof (paramName) == "undefined")
		paramName = "param";
	if (onCss == 'btn-query') { // 如果为查询 当前页为1，查询条件为获取文本框值
		pageCurrent = 1;
	} else {
		if (onCss == 'fp') { // 首页
			pageCurrent = 1;
		} else if (onCss == 'pp') { // 上页
			pageCurrent = pageCurrent == 1 ? 1 : parseInt(pageCurrent) - 1;
		} else if (onCss == 'np') { // 下页
			pageCurrent = pageCurrent == pageCount ? pageCount
					: parseInt(pageCurrent) + 1;
		} else if (onCss == 'lp') { // 尾页
			pageCurrent = pageCount;
		}
	}
	var _info = [];
	// 每页起始记录,每页结束记录
	startrecord = (parseInt(pageCurrent == 0 ? 1 : pageCurrent) - 1)
			* parseInt(pageSize) + 1;
	endrecord = parseInt(pageCurrent) * parseInt(pageSize);
	// 整合分页条件
	_info.push("'" + paramName + ".sr':'" + encodeURI(startrecord) + "'"); // 起始记录数
	_info.push("'" + paramName + ".er':'" + encodeURI(endrecord) + "'"); // 终止记录数
	_info.push("'" + paramName + ".ps':'" + pageSize + "'"); // 第页显示记录数
	_info.push("'" + paramName + ".pc':'" + pageCurrent + "'"); // 当前页
	if (info != "")
		_info.push(info);
	info = _info.join(',');
	return info;
};

function condition() {

	var winh = $(window).height();
	var varh = 100; // 头部的两个高度和 45+55;
	/*$(".m-search .condition").height(winh - varh);
	$(".m-search .condition").scrollTop(0);
	$(".m-search .condition").perfectScrollbar();*/
}

// 获取查询框参数
function getParam(form, mbName) {
	var parms = [];
	if (mbName != null && $.trim(mbName).length > 0) {
		parms.push("'param.MBNAME':'" + mbName + "'");
	}
	$('#' + form)
			.find(
					'input[type="text"],input[type="hidden"],input[type="radio"]:checked,select,textarea')
			.each(
					function() {
						parms.push("'param." + this.name + "':" + "'"
								+ this.value + "'");
					});
	return parms;
}

// 将参数转为json
function getJsonParam(form, fun) {
	return tEval(getParam(form, fun).join(','));
}

// 重载表单数据
function searData(form, fun) {
	mTable.fn.reloadData(getJsonParam(form, fun));
}

// 将字符串转为json
var tEval = function(info) {
	var _str = [];
	_str.push('{');
	_str.push(info);
	_str.push('}');
	_str = _str.join('');
	return eval('(' + _str + ')');
};
// 空值转化
function _replaceAll(json) {
	for ( var i in json) {
		for ( var j in json[i]) {
			if (json[i][j] == null) {
				json[i][j] = "";
			}
		}
	}
	return json;
}

/**
 * 列表动态加载
 * 
 * @param url
 * @param data
 * @param successMsg
 * @param errMsg
 */
var tAjax = function(url, data, successMsg, errMsg) {
	$.ajax({
		type : "POST",
		url : url,
		data : data,
		dataType : "json",
		success : function(json) {
			if (undefined == json)
				return;
			// 针对页面对jsonStr进行处理
			json = _replaceAll(json);

			deal(json, startrecord);
			setTableCss();
		},
		error : function() {
		}
	});
};

/**
 * 查询数据记录。用于查询，分页查询
 * 
 * @param onCss
 *            事件元素css样式
 * @param onBtn
 *            按传入的参数判断需要查询的条件，1为按条件查询，2为按查询结果分页查询
 * @return json data
 */
var tQryInfo = function(onCss, onBtn, para, tHeight, paramName) {
	var successMsg = "";
	var errMsg = "";
	var info = ""; // 查询条件
	if (onBtn == 1) { // 如果onBtn为1表示按条件查询
		hideSchDiv();
		var b = preCheck();
		if (b == -1) {
			return false;
		}
		info = getInfo(); // 取得查询条件值
		successMsg = " 查询成功. ";
		errMsg = " 数据库异常，查询失败. ";
	} else if (onBtn == 2) { // onBtn为2表示非条件查询
		info = $("#qryInfo").val(); // 取出原有查询条件值
		successMsg = " 查询成功. ";
		errMsg = " 数据库异常，查询失败. ";
	} else if (onBtn == 3) {
		info = getInfo(); // 取得查询条件值
	} else if (onBtn == 4) {
		info = para;
	} else if (onBtn == 5) {
		info = para;
		successMsg = " 查询成功. ";
		errMsg = " 数据库异常，查询失败. ";
	} else if (onBtn == 6) { // onBtn为2表示非条件查询
		info = $("#qryInfo").val(); // 取出原有查询条件值
	}

	$("#qryInfo").val(info);
	// 获取查询条件字符串对象
	info = page(onCss, info, tHeight, paramName);
	// 得到的info非对象转化成对像
	info = tEval(info);
	// 获取总记录数，分页总记录数
	rowNum(ROWNUM_URL, info, pageSize);
	// if(onBtn == 3){
	// rowNum(ROWNUM_URL, info, pageSize);
	// }
	// 处理返回的json结果集
	tAjax(QUERY_URL, info, successMsg, errMsg);
	// 设备当前页

	$("#current").text(pageCurrent);
};

/**
 * 获取查询条件区域的条件值
 * 
 * @return string
 */
var getInfo = function() {
	var jsonStr = [];
	$('#schCond')
			.find(
					'input[type="text"],input[type="hidden"],input[type="radio"]:checked,input[type="checkbox"]:checked,select,textarea')
			.each(
					function() {
						jsonStr.push("'param." + this.name + "':" + "'"
								+ this.value + "'");
					});

	jsonStr = jsonStr.join(',');

	$("#qryInfo").val(jsonStr); // 保存查询条件
	return jsonStr;
};

// 获取checkbox勾选的REC_ID，逗号分隔
function getCheckedRecid(isArray) {
	var ids = [];
	$("input[name='mCheck']:checked").each(function() {
		ids.push($(this).val());
	});
	if (isArray)
		return ids;
	return ids.join(",");
}

// 显示消息提示
function hintMsg(msg, isError) {
	var type = isError ? "error" : "success";
	$(".m-hint .hint-font").text(msg);
	$(".m-hint").attr("class", "m-hint " + type + "").show();
	setTimeout('$(".m-hint").hide()', 3000);
}

function exportExcel() {
	var json = getJsonParam("schCond");
	json['param.listId'] = $("#listId").val();
	json['param.formId'] = $("#formId").val();
	json['param.listTitle'] = $(".title").html();
	// 记录数超过10完则不允许导出
	var rowCount = $("#rowCount").html();
	if (rowCount < 100000) {
		top.subscribeExport(json);
	} else {
		layer.msg('温馨提醒：记录数超过10万，请使用预约导出功能！');
	}
}

function isEmpty(str) {
	return str == null || str == "";
}

function preCheck() {

}

function setTableCss1() {
	$('#table_rb').tableHover({
		colClass : 'hover',
		cellClass : 'hovercell',
		clickClass : 'click'
	});
}

function setTableCss() {
	tabeven();
	$(".mTable tbody tr td").hover(function() {
		$(".mTable tbody tr td").removeClass("active");
		var i = $(this).index();
		$(".mTable tbody tr").each(function() {
			$(this).find("td").eq(i).addClass("active");
		});
	});

	$(".mTable tbody tr td").click(function() {
		$(".mTable tbody td").removeClass("active2");
		$(".mTable tbody tr").removeClass("active2");
		$(this).closest("tr").find("td").each(function() {
			$(this).addClass("active2");
		});
		var i = $(this).index();
		$(".mTable tbody tr").each(function() {
			$(this).find("td").eq(i).addClass("active2");
		});

	});

}

function tabeven() {
	var $tr = $(".mTable tbody tr");
	var i;
	for (i = 0; i < $tr.length; i++) {
		$(".mTable tbody tr").eq(2 * i + 1).find("td").addClass("active3");
	}
}

function unique4(arr) {
	arr.sort();
	var re = [ arr[0] ];
	for (var i = 1; i < arr.length; i++) {
		if (arr[i] !== re[re.length - 1]) {
			re.push(arr[i]);
		}
	}
	return re;
}

function arraydel(arr, n) {
	if (n < 0)// 如果n<0，则不进行任何操作。
		return arr;
	else
		return arr.slice(0, n).concat(arr.slice(n + 1, arr.length));
	/*
	 * concat方法：返回一个新数组，这个新数组是由两个或更多数组组合而成的。
	 * 这里就是返回this.slice(0,n)/this.slice(n+1,this.length) 组成的新数组，这中间，刚好少了第n项。
	 * slice方法： 返回一个数组的一段，两个参数，分别指定开始和结束的位置。
	 */
}

function checkAll() {
	/*if ($(this).prop('checked')) {
		$("input[name='mCheck']").prop("checked", true);
	} else {
		$("input[name='mCheck']").prop("checked", false);
	}*/
}
/**
 * type 0或空:yyyyMMdd;1:yyyy-MM-dd,2:yyyyMMddHHmmss,3:yyyy-MM-dd HH:mm:ss
 * 
 * @param ele 元素
 * @param type
 * @returns
 */
function getMinTime(ele, type) {
	var d, year, month;
	var ds = $("#" + ele).val();
	if (ds != '') {
		if (type == '1') {
			year = ds.substring(0, 4);
			month = ds.substring(5, 7);
			d = year + '-' + month + '-01';
		} else if (type == '3') {
			year = ds.substring(0, 4);
			month = ds.substring(5, 7);
			d = year + '-' + month + '-01 00:00:00';
		} else if (type == '2') {
			year = ds.substring(0, 4);
			month = ds.substring(4, 6);
			d = year + month + '01000000';
		} else {
			year = ds.substring(0, 4);
			month = ds.substring(4, 6);
			d = year + month + '01';
		}
	} else {
		if (type == '1') {
			d = "{%y-2}-%M-01";
		} else if (type == '3') {
			d = "{%y-2}-%M-01 00:00:00";
		} else if (type == '2') {
			d = "{%y-2}%M01000000";
		} else {
			d = "{%y-2}%M01";
		}

	}
	return d;
};

function getMaxTime(ele, type) {
	var d, year, month;
	var ds = $("#" + ele).val();
	if (ds != '') {
		if (type == '1') {
			year = ds.substring(0, 4);
			month = ds.substring(5, 7);
			d = year + '-' + month + '-%ld';
		} else if (type == '3') {
			year = ds.substring(0, 4);
			month = ds.substring(5, 7);
			d = year + '-' + month + '-%ld 23:59:59';
		} else if (type == '2') {
			year = ds.substring(0, 4);
			month = ds.substring(4, 6);
			d = year + month + '%ld235959';
		} else {
			year = ds.substring(0, 4);
			month = ds.substring(4, 6);
			d = year + month + '%ld';
		}
	} else {
		if (type == '1') {
			d = "%y-%M-%ld";
		} else if (type == '3') {
			d = "%y-%M-%ld 23:59:59";
		} else if (type == '2') {
			d = "%y%M%ld235959";
		} else {
			d = "%y%M%ld";
		}

	}
	return d;
};